當工程師以來的職涯,技術推陳出新,迭代快速的環境下,逐漸瞭解到「工程師」要培養的技能不是各種技術都摸過,而是「如何在短時間內,掌握技術要點所在」。當認知到這點時,深感自己學習速度真的很慢,於是慢慢找到適合自己的學習方式,想在進入章節前和大家分享。
吸收教材前,先看目錄大綱
有些內容是已經學會,知道如何應用的就可以跳過,從不熟悉的地方開始看起。
在吸收前,先不求每個地方都能明白,第一次先瞭解概念,第二次再把不熟悉的段落重新理解,一邊實做一邊理解內容,這個方法可以讓學習者在有限的時間中,掌握自己「不會」和「要再加強」的地方,多做幾次就會了。
學習是「點、線、面」的集合
這個概念是前輩曾經告訴我的,一開始還不明白,到了有意識的規劃學習後逐漸體會這個意思。覺得很神奇,如何找到該領域的「點、線、面」呢?可以從 Google: XXX Roadmap 開始,找出領域的技能樹,在一項一項take起來,雖然筆者不玩遊戲,但就像如果要當魔法師,那麼就要學會藥水配置、素材屬性一樣。
舉個例子就像,在Javascript中想要操控DOM,就會用到jQuery,但換到Angular框架中可以用nativeElement操控DOM元素。在運用框架前,先瞭解沒有框架的世界是怎麼處理的,對於「技術的理解」會有大大的幫助。
看課程,一定要「作筆記」、「動手實做」
筆者習慣第一遍紀錄「關鍵字」、「實做要點」、「差異和運用場景」,確認自己瞭解運作方式後,會看第二遍,會「邊看筆記,邊做assignment」,這樣就練習到input、output,如果做不出來的地方在重看一遍,或是看講師的source code,從中認識自己的學習狀況,也能更有效的加深印象。日後有一天要用到該技術,透過筆記就能找到過往的學習記憶,「走過的路不會白費,花掉的時間也不會」
「工程師」應該著重精通一項技術,而非每樣都摸,樣樣都不是很通
「精通一項」技術,花上100%的專注力; 對比「多項」技術,花上各20%的專注力。哪一種對自我學習會比較好?因人而異,筆者實驗下來,比較偏好100%的專注力在某項領域成長,一來學習成效高,二來也不會容易中途因為太難銜接而放棄,再者「人生很短,把時間花在喜歡的事情上,才不會澆熄學習的熱情」。
筆者身邊的前輩們,有個專精Java、Spring Boot與系統架構,就讓他玩了20多年,說要寫到60歲(是不是真的很神奇); 還有一個專精AWS、CICD和Devops,也讓他玩了10多年,現在也持續在該領域上精進。
得懂一些 Google 不到的東西,不然價值就提升不起來
以前的工程師沒有Google查答案,是怎麼突破技術的呢?現在會Google基本上人人都會寫扣 (歪),那什麼是「得懂Google不到的東西」?那就是「經驗」。
那如何獲得經驗?透過持續學習、和實做,過程中累積經驗,就是別人Google不到的,因為學習歷程只有自己知道,也因此才會說「作筆記」的重要,因為當下的你經歷其中,最有印象這個問題要如何解。而因為有作筆記,當有需要時就能快速查找,所以又回到「作筆記能讓你,走過的路不會白費」,你的價值當下不會感受到,時間到了就能體會了。(好玄)
下一篇將介紹「為什要寫測試?能用就好了吧?!」